1. The Field of the Invention
The present invention relates to electronic messaging and, more particularly, to efficiently and reliably providing message related data.
2. Background and Relevant Art
Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, and database management) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. As a result, many tasks performed at a computer system (e.g., voice communication, accessing electronic mail, controlling home electronics, web browsing) include electronic communication between a number of computer systems and/or other electronic devices via wired and/or wireless computer networks.
In particular, electronic messaging has become an important method for communicating. Computer system users often send and receive electronic messages (e.g., electronic mail messages, instant messages, faxes, news group postings, etc.,) to exchange information with one another. For example, to send an electronic mail message, a sending user typically selects a new message option from within an electronic mail application. In response to the selection, the electronic mail application displays one or more fields (e.g., a To field, a Body field, etc.) that can receive user entered data. The sending user then enters data (e.g., at a keyboard) into the displayed fields. When appropriate, the sending user can save the electronic mail message as a draft or send the electronic mail message to a recipient user (e.g., by selecting the appropriate “save” or “send” control within the electronic mail application).
Sending the electronic mail message may cause the electronic mail message to be routed from the sending user's computer system, through a sending mail server, across a network, to a receiving mail server that stores electronic mail messages for a recipient user. To view the electronic mail message, the recipient user establishes a connection from an electronic mail application to the receiving mail server. Establishing the connection can cause all electronic mail messages sent to the recipient user, including the mail message from the sending user, to be transferred from the receiving mail server to the recipient user's computer system and stored at the recipient user's computer system. After the electronic mail message from the sending user is transferred and stored, the recipient user may manipulate an input device, such as, for example, a mouse, within the electronic mail application to view the stored electronic mail message.
Computer system users can also use other different messaging applications to send, receive, and store other different types of electronic messages. Unfortunately, different types of electronic messages (e.g., electronic mail messages, instant messages, faxes, blog entries, voice messages, etc.) are typically stored in different data formats. For example, a data format used to store one type of electronic message, such as, for example, an instant message, typically differs from the data format used to store other different types of electronic message, such as, for example, a news group posting. Thus, to access a specified type of electronic message, a user is required to use a messaging application that can access data stored in the data format corresponding to the specified type of electronic message. For example, a user is typically required to use an instant messaging application to access instant messages.
Further, messaging applications are typically configured to access only a few, or even only one, type of electronic message and cannot generally be used to access other additional types of electronic messages. That is, messaging applications are typically designed to access data stored in a limited number of data formats, and potentially only one data format, that corresponds to one or more specified electronic message types. For example, an instant message application is typically configured to access data stored in one or more instant message data formats but is typically not configured to access data stored in fax data formats.
Additionally, some data formats can be application specific. Thus, two messaging applications configured to access the same type of electronic messages may nonetheless use different data formats to store electronic message data. For example, a first electronic mail application may store electronic mail messages using a first data format, while a second electronic mail application stores electronic mail messages using a second different data format. Thus, a messaging application developed to access electronic messages of a particular type may not be able to access all electronic messages of the particular type. For example, an electronic mail message stored in the first data format by the first electronic mail application may not be accessible to the second electronic mail application (e.g., that can only access electronic mail messages stored in the second data format).
Also, each different messaging application typically stores corresponding electronic messages in a different database. For example, an instant messaging application can store instant messages in an instant messaging database, an electronic mail application can store electronic mail messages in an instant messaging database, a news group reader can store news group postings in a news group database, etc. Accordingly, some limited attempts to simplify message access have been developed.
For example, Message Application Program Interface (“MAPI”) allows different electronic mail applications to interoperate to distribute electronic mail messages. MAPI essentially functions as converter that allows electronic mail applications to exchange messages even if native message formats of the electronic mail applications differ. That is, an electronic mail message in a first format can be configured for MAPI compatibility, transferred to another database, received through MAPI, and configured for compatibility with a second format. However, interoperability is typically restricted to electronic mail applications that implement MAPI to exchange electronic mail messages. That is, MAPI would typically not be used to exchange other types of electronic messages, such as, for instant messages, faxes, etc. The restrictions of MAPI prevent many message applications from compatibly accessing electronic messages and thus being able to interoperate to exchange electronic messages with other messaging applications.
A further deficiency in many electronic messaging applications is the inability to provide accurate contact information related to an entity associated with an electronic message. For example, a received electronic message may only include an e-mail address of a sending entity. Thus, there may be no way for a message recipient to respond to a sending entity other than through e-mail. Further, even if a sending entity is included in a message recipient's address book there is always some chance that the sending entity's contact information has change (e.g., new telephone number, address, job title, etc.). Also, since an address book is typically stored at a message recipient's computer system and is updated only when the message recipient expressly enters data, there is no way for the address book to be updated to provide potentially real-time contact information. For example, there is no way for a message recipient to determine if a sending entity is in the office, at lunch, etc. Therefore systems, methods, computer program products, and data structures for efficiently and reliably providing message related data would be advantageous.